<?php

// Inicia Sessão (necessário para login)
session_start();

require_once 'configs/setup.php';

require_once PRESENTATION_DIR . 'PersonalSmarty.class.php';

require_once BUSINESS_DIR . 'query_catalog.php'; //mudar para classe necessária
require_once BUSINESS_DIR . 'database_handler.php';
require_once BUSINESS_DIR . 'date_handler.php'; // Classe para manipular datas

/*
 * Chamando manipulador de erros da apclicação
 */
require_once BUSINESS_DIR . 'error_handler.php';
ErrorHandler::SetHandler();


/*
 * INSTANCIA DO SMARTY TEMPLATE ENGINE
 */
$my_smarty = new PersonalSmarty();

$action = isset($_REQUEST['action'])? $_REQUEST['action'] : null;
$my_smarty->assign("login_error", "false");


switch ($action) {
        case 'perform_login':
            if (isset($_REQUEST['login'])) {
                // Procura Login no Banco de Dados
                $result = QueryCatalog::GetLogin($_REQUEST['login']);
                // Se encontrado login na Base de dados:
                if (!($result == false) && ($result['password'] == $_REQUEST['password']) ) {
                        // GUARDA LOGIN NA SESSÃO
                        $_SESSION['login'] = $result['login'];
                        $user = QueryCatalog::GetUser($_SESSION['login']);
                        $user_name = $user['nome'];
                        $_SESSION['user_name'] = $user_name; 
                //Se não encontrado login na Base de Dados:    
                } else {
                    $my_smarty->assign("login_error", "true");
                }
            }
            break;
        case 'new_user':
            $login = $_REQUEST['login'];
            $password = $_REQUEST['password'];
            $password_hint = $_REQUEST['password_hint'];
            $cpf = $_REQUEST['cpf'];
            $nome = $_REQUEST['nome'];
            $email = $_REQUEST['email'];
            $telefone = $_REQUEST['telefone'];
            $fk_idstatus = STATUS_PENDENTE;
            try {
                QueryCatalog::addNewUser($login, $password, $password_hint, $cpf, $nome, $email, $telefone, $fk_idstatus);
            } catch (PDOException $pdoex) {
                trigger_error($pdoex->getMessage());    
            }
            break;
        case 'logout':
            if(isset($_SESSION['login'])) {
                unset($_SESSION['login']);
                unset($_SESSION['password']);
                session_destroy(); //Destroi toda a sessão!
            }
            break;
    default:
    break;
                
}

$my_smarty->display('system_front.tpl');
?>
